package com.qf.aop;

import org.springframework.aop.BeforeAdvice;
import org.springframework.aop.MethodBeforeAdvice;

import java.lang.reflect.Method;

/**
 * 前置通知：MethodBeforeAdvice
 *
 * 后置通知：AfterAdvice
 *
 * 后置通知：AfterReturningAdvice //有异常不执行，方法会因异常而结束，无返回值
 *
 * 异常通知：ThrowsAdvice
 *
 * 环绕通知：MethodInterceptor
 * 我自定义的前置通知
 * @author lixu
 */
public class MyBeforeAdvice implements MethodBeforeAdvice {


    /**
     * MethodBeforeAdvice
     * @param method method being invoked
     * @param args arguments to the method
     * @param target target of the method invocation. May be {@code null}.
     * @throws Throwable
     */
    @Override
    public void before(Method method, Object[] args, Object target) throws Throwable {
        //打印日志 ： 记录用户行为  分析用户心理 从而智能推荐  大数据
        //target : 目标对象
        //method : 目标对象中方法是谁？
        //Object[] args:  name = z3  age = 21
        System.out.println("==1:发布房屋信息");
        System.out.println("==2:带租户看房");

    }
}
